/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.clinicariobamba.Controladores;

import com.clinicariobamba.ReglasNegocio.Clases.Dependencia;
import com.clinicariobamba.ReglasNegocio.Funciones.FuncionesDependencia;
import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.context.DefaultRequestContext;

/**
 *
 * @author Gis
 */
@ManagedBean
@ViewScoped
public class ControladorDependencia implements Serializable{

    private Dependencia dependencia;
    private ArrayList<Dependencia> lstDependencia;
    private ArrayList<Dependencia> lstTodasDependencia;
    private Dependencia depSel;
    

    public ControladorDependencia() {
        this.dependencia = new Dependencia();                
        ObtenerDependencias();
        
    }

    public Dependencia getDependencia() {
        return dependencia;
    }

    public void setDependencia(Dependencia dependencia) {
        this.dependencia = dependencia;
    }

    public ArrayList<Dependencia> getLstDependencia() {
        return lstDependencia;
    }

    public void setLstDependencia(ArrayList<Dependencia> lstDependencia) {
        this.lstDependencia = lstDependencia;
    }

    public ArrayList<Dependencia> getLstTodasDependencia() {
        return lstTodasDependencia;
    }

    public void setLstTodasDependencia(ArrayList<Dependencia> lstTodasDependencia) {
        this.lstTodasDependencia = lstTodasDependencia;
    }    
    
    public Dependencia getDepSel() {
        return depSel;
    }

    public void setDepSel(Dependencia depSel) {
        this.depSel = depSel;
    }

   

    //Aqui aumentar obtenerDependencias por id de organizacion

    public Dependencia ObtenerDependencia(int id) {
        return FuncionesDependencia.obtenerDependencia(id);
    }

    public final void ObtenerDependencias() {
        this.lstTodasDependencia = FuncionesDependencia.obtenerDependencias();
    }
    public void ObtenerDependenciasxOrganizacion(int idOrg)
    {        
       this.lstDependencia = FuncionesDependencia.obtenerDependenciasxOrganizacion(idOrg);
    }
    public void insertarDependencia (){
        try {
            if (FuncionesDependencia.insertar(dependencia)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Insertados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                ObtenerDependencias();
                DefaultRequestContext.getCurrentInstance().execute("wdlgNuevoDependencia.hide()");
                dependencia = new Dependencia();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al Insertar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void actualizarDependencia() {
        try {
            if (FuncionesDependencia.modificar(depSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Actualizados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                ObtenerDependencias();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEditarDependencia.hide()");
                depSel = new Dependencia();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al Actualizar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void eliminarDependencia() {
        try {
            if (FuncionesDependencia.eliminar(this.depSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Eliminados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                ObtenerDependencias();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEliminarDependencia.hide()");
                depSel = new Dependencia();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al Eliminar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }


}
